루비와 C의 통합은 루비의 고수준 개발 생산성(우아함)과 C의 저수준 실행 속도(성능)의 전략적 결합을 의미합니다. 모든 루비 프로세스는 C 기반 인터프리터에서 시작되며, 명령어 echo 'puts "안녕하세요"' | ruby 는 C 호스팅 로직이 환경을 초기화하는 진입점임을 보여줍니다.
1. 공통 통화 (VALUE)
이 다리의 핵심은 VALUE 타입으로, 모든 루비 객체를 나타내는 C 핸들이며, Qnil 및 UTF-8문자열까지 포함됩니다. 이는 두 언어 간 데이터 전달을 위한 통일된 인터페이스를 제공합니다.
2. 인터페이싱 및 내보내기
사용하여 유틸리티 함수 예를 들어 rb_define_class_under와 같은 함수를 통해 개발자들은 C에서 정의한 로직을 루비 네임스페이스로 내보냅니다. 이 아키텍처는 성능에 민감한 기본 라이브러리 소스 파일 을 C로 작성하면서도 표준 루비 객체로서 접근 가능하게 합니다.
이 유기적인 조화는 복잡한 RData 구조체가 루비의 가비지 컬렉터에 의해 관리되며, 고주파 엔진이 우아한 루비 래퍼 안에서 작동할 수 있도록 합니다.
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>